<?php
class Registration_Action_Controller extends Engine_Action_ControllerAbstract
{

private $defaultPicture = ALL_PICTURE_DEFAULT;
          
     public function run() 
     {
         // вызывает модель где все главные параметры
         $this->setInfoModel('Регистрация пользователя');
         // В зависимости от названия класса выводит шаблон
         $this->view->setRenderTemplate( __CLASS__);
             
         // установить значение для фотографии, которая уйдёт в модель    
         if(isset($this->get['gender'])) {
             if($this->get['gender'] == 0){
                 $this->defaultPicture = MEN_PICTURE_DEFAULT;
             } else {
                 $this->defaultPicture = WOMAN_PICTURE_DEFAULT;
             }
         }
         
         // если пользователь нажал зарегистрироваться
         if (isset($this->get['regSub'])) {
             
             // валидация запроса регистрации
             if(empty($this->get['userBirthdayYear']) or empty($this->get['userBirthdayYear']) or empty($this->get['userBirthdayYear'])) {
                $this->view->errors = NO_REGISRATION_DATA_AGE;
                return; 
             } else if(empty($this->get['regPassword'])) {
                $this->view->errors = NO_REGISRATION_DATA_PASSWORD;
                return; 
             } else if(empty($this->get['regLogin'])) {
                $this->view->errors = NO_REGISRATION_DATA_LOGIN;
                return; 
             }
             
             // собрирает модель из request запроса
             $model = new User_Model(array(
                 'login' => $this->get['regLogin'],
                 'firstName' => $this->get['regFirstName'],
                 'secondName' => $this->get['regSecondName'],
                 'email' => $this->get['regEmail'],
                 'password' => md5(md5($this->get['regPassword'])),
                 'phone' => $this->get['regPhone'],
                 'birthday' => $this->get['userBirthdayYear'] . '-' .  $this->get['userBirthdayMonth'] . '-' .$this->get['userBirthdayDay'] ,
                 'timeCreated' => time(),
                 'gender' => $this->get['gender'],
                 'picture'=> $this->defaultPicture
             ));
             
             // использовать datamapper для запроса в бд            
             $datamapper = new User_Data_Mapper();
             $returnedModel = $datamapper->addUser($model);
             if(!$returnedModel){
                 $this->view->errors = $datamapper->getErrors();
             } else { 
                $_SESSION['login'] = $returnedModel->getLogin();
                $_SESSION['id'] = $returnedModel->getId();
                $_SESSION['isAdmin'] = $returnedModel->getRights();
                
                // послать письмо приветствия
                $messageModel = new Message_Model(array(
                    'sendToId' => $returnedModel->getId(), 
                    'timeCreated' => time() 
                ));
                $sendWelcomeMessage = new Message_Data_Mapper();
                $sendWelcomeMessage->sendHelloMessage($messageModel);
                // вне зависимости от результата sendmessage сделать header
                header('Location:/personal/');
             }
         }
     }
}
  
